﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Box.Entities;

namespace Box.Repository.Mapping
{
    public class ClienteMap:EntityTypeConfiguration<Cliente>
    {
        public ClienteMap()
        {
            this.HasKey(p => p.Id);
            this.Property(p => p.Id)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

            this.Property(p => p.NombreCliente)
                .IsRequired()
                .HasMaxLength(100);

            this.Property(p => p.RucCliente)
                .IsRequired();
                

            this.Property(p => p.DireccionCliente)
                .IsOptional()
                .HasMaxLength(90);

            this.Property(p => p.CorreoCliente)
                .IsOptional()
                .HasMaxLength(90);

            this.Property(p => p.TelefonoCliente)
                .IsOptional()
                .HasMaxLength(10);
            this.Property(p => p.TelefonoCasa)
                .IsOptional()
                .HasMaxLength(10);
            this.Property(p => p.Organizacion)
                .IsOptional()
                .HasMaxLength(100);

            this.Property(p => p.DireccionEmpresa)
                .IsOptional()
                .HasMaxLength(150);

            this.ToTable("CLIENTE");

            this.Property(p => p.Id).HasColumnName("Id");
            this.Property(p => p.NombreCliente).HasColumnName("NombreCliente");
            this.Property(p => p.RucCliente).HasColumnName("RucCliente");
            this.Property(p => p.DireccionCliente).HasColumnName("DireccionCliente");
            this.Property(p => p.CorreoCliente).HasColumnName("CorreoCliente");
            this.Property(p => p.TelefonoCliente).HasColumnName("TelefonoCliente");
            this.Property(p => p.TelefonoCasa).HasColumnName("TelefonoCasa");
            this.Property(p => p.DireccionEmpresa).HasColumnName("DireccionEmpresa");
            this.Property(p => p.Organizacion).HasColumnName("Organizacion");

        }
    }
}
